require 'rails/generators'
require 'rails/generators/migration'

# @private
class Adyen::NotificationGenerator < Rails::Generators::Base
  include Rails::Generators::Migration

  def self.source_root
    @source_root ||= File.join(File.dirname(__FILE__), 'templates')
  end

  # Implement the required interface for Rails::Generators::Migration.
  # taken from http://github.com/rails/rails/blob/master/activerecord/lib/generators/active_record.rb
  def self.next_migration_number(dirname)
    if ActiveRecord::Base.timestamped_migrations
      Time.now.utc.strftime("%Y%m%d%H%M%S")
    else
      "%.3d" % (current_migration_number(dirname) + 1)
    end
  end

  # Create a migration file for the adyen_notifications table
  def create_migration_file
    migration_template 'notification_migration.rb', 'db/migrate/create_adyen_notifications.rb'
  end
  
  def create_model_file
    template 'notification_model.rb', 'app/models/adyen_notification.rb'
  end
end
